<!--  -->
<template>
<div class=''>
  <section>
    <!-- 1. 通过自定义事件，将事件传递给InputItem
        @click
        @mouseover

        @itemevent
    -->
    <InputItem @itemevent="handleAdd"></InputItem>
    <ul>
      <!-- 父组件传值给子组件 通过属性的方式进行传递 -->
      <TodoItem v-for="(todo,index) in todos" :item="todo" @deleteevent="handleDelete" :index="index"></TodoItem>
    </ul>
  </section>
</div>
</template>

<script>
//这里可以导入其他文件（比如：组件，工具js，第三方插件js，json文件，图片文件等等）
//例如：import 《组件名称》 from '《组件路径》';
import  InputItem from "@/components/InputItem.vue"
import TodoItem from '@/components/TodoItem.vue'
export default {
//import引入的组件需要注入到对象中才能使用
components: {
  InputItem,TodoItem
},
data() {
//这里存放数据
return {
  todos:[
    {
      id:1,
      text:"吃饭"
    },
    {
      id:2,
      text:"睡觉"
    },
    {
      id:3,
      text:"打豆豆"
    }
  ]
};
},
//监听属性 类似于data概念
computed: {},
//监控data中的数据变化
watch: {},
//方法集合
methods: {
  handleDelete:function(index){
    console.log("现在要删除的项：",index);
    this.todos.splice(index,1);
  },
  // 2. 定义添加处理函数
  handleAdd:function(inputVal){
    console.log("接受子组件传递过来参数：",inputVal);
    this.todos.push({
      id:Date.now(),
      text:inputVal
    })
  }
},
//生命周期 - 创建完成（可以访问当前this实例）
created() {

},
//生命周期 - 挂载完成（可以访问DOM元素）
mounted() {

},
beforeCreate() {}, //生命周期 - 创建之前
beforeMount() {}, //生命周期 - 挂载之前
beforeUpdate() {}, //生命周期 - 更新之前
updated() {}, //生命周期 - 更新之后
beforeDestroy() {}, //生命周期 - 销毁之前
destroyed() {}, //生命周期 - 销毁完成
activated() {}, //如果页面有keep-alive缓存功能，这个函数会触发
}
</script>
<style lang='less' scoped>

</style>